/*
 * @Author: your name
 * @Date: 2024-06-13 10:52:52
 * @LastEditTime: 2024-06-13 10:56:40
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \.leetcode\70.爬楼梯.cpp
 */
/*
 * @lc app=leetcode.cn id=70 lang=cpp
 *
 * [70] 爬楼梯
 */

// @lc code=start
class Solution {
public:
    // dp[i]表示到达第i个楼层，有dp[i]种方法。
    // 到达第i个楼层的方法等于 到达第i-1个楼层的方法数 + 到达第i-2个楼层的方法数
    int climbStairs(int n) {
        vector<int>dp(n+1, 0);
        if(n < 2){
            return 1;
        }
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i <= n; i++){
            dp[i] = dp[i-1] + dp[i-2];
        }
        return dp[n];
    }
};
// @lc code=end

